import os
os.chdir('CHEMIN du travail avec des \\')

## Mise en place de l’algorithme KNN

def Distance_uv(u,v):
    n = len(u)
    Dst = 0
  # A COMPLETER
  # A COMPLETER
  # A COMPLETER
    return Dst


def Distance(u,Lv):
    Ld = []
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER
    return Ld

def Proches(u,Lv,k):
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER
    return Res

# %%
## Lecture des images

# Affichage

import matplotlib.pyplot as plt
plt.close('all')

def Affiche(image):
    plt.figure()
    plt.imshow(image)
    plt.axis('off')
    plt.show()
    plt.pause(0.00001)

# Lecture des images

def Lecture(Chemin):
    Image = plt.imread(Chemin)
    return Image

## Fonctions d'analyse des images

def Analyse(Image):
    Nl,Nc = Image.shape[0:2]
    N = Nl * Nc
    L_RGB = []
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER
    return L_RGB

# %%
def Analyse_Globale(L_Chemin):
    Res = []
    N = len(L_Chemin)
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER
    return Res

# %%
## Création de la base des données

# Ouverture des images sources

Sources = "Sources\\"
Dossiers = [0,1,2,3,4,5,6,7]
Nb_Dossiers=len(Dossiers)
Nb_Images_Dossiers = [5,5,5,5,5,5,5,5]

Liste_Chemin = []
Liste_Dossier = []
Liste_Num = []
for d in Dossiers:
    Nb_Im = Nb_Images_Dossiers[d]
    for im in range(Nb_Im):
        Chemin = Sources + str(d) + "\\" + str(im) + ".png"
        Liste_Chemin.append(Chemin)
        Liste_Dossier.append(d)
        Liste_Num.append(im)

# %%
# Analyse des images

Donnees = # A COMPLETER

## Reconnaissance automatique

# Fermeture des images

plt.close('all')

# Ouverture et analyse de l'image recherchée
print("Quelle image souhaitez vous identifier ?")
print("01 ou 11 ou 12 ou 21 ou 22 ou 31 ou 41 ou 42 ou 51 ou 52 ou 61 ou 71 ?")
print("")
print("Ecrivez le numéro souhaité :")
selec=input()
Recherche = "Recherche\\"
Im_Cherchee_Chemin = Recherche + selec +".png"
Im_Cherchee = Lecture(Im_Cherchee_Chemin)
Affiche(Im_Cherchee)
Im_Cherchee_Infos = Analyse(Im_Cherchee)

# %%
# Recherche des k plus proches voisins

k = 5
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER
print("Dossiers trouvés: ",Resultat_Dossiers)
print("Numéros des images: ",Resultat_Num)

# %%
# Selection du résultat

def Max_Occurences(L):
  # A COMPLETER  
  # A COMPLETER  
  # A COMPLETER

Dossiers_final = Max_Occurences(Resultat_Dossiers)
print("Dossier: ",Dossiers_final)

# Affichage du résultat

Im_Trouvee_Chemin = Sources + str(Dossiers_final) + "\\0" + ".png"
Im_Trouvee = Lecture(Im_Trouvee_Chemin)
Affiche(Im_Trouvee)
print("Vous pouvez vérifier si les 2 figures sont les mêmes !")